﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using DAplicaciones1;

namespace persistencia
{
    class BrDvd:BrItem
    {
        public override void agregar(Object o)
        {
            try
            {
                Dvd dvd = (Dvd)o;
                string sentencia;
                base.agregar(o);
                sentencia = "Insert into dvd values ('" + dvd.OID + "','" + dvd.Artista + "','" + dvd.Duracion + "')";
                Conexion.ejecutarse(sentencia);
            }
            catch (Exception e1)
            {
                throw new System.ArgumentException("No se pudo insertar el cd en la Base de datos");
            }
        }
        public override void modificar(Object o)
        {

        }

        public override void eliminar(Object o)
        {

        }

        public override void traerDatos(Object o)
        {


        }


        public override ArrayList traerLista(Object o)
        {

            ArrayList al = new ArrayList();
            Dvd dvd = (Dvd)o;
            string sentencia = "select * from ((dvd inner join item i on i.itemOID=dvd.itemOID)inner Join ContenidoRelacionado cr on cr.itemOID=dvd.itemOID) inner join accesoOnline ao on ao.itemOID=dvd.itemOID";
            Conexion.traerDatos(sentencia);
            while (Conexion.DataR.Read())
            {
                dvd = new Dvd();
                dvd.OID = Conexion.obtenerValor("i.itemOID").ToString();
                dvd.Nombre = Conexion.obtenerValor("nombre").ToString();
                dvd.Costo = Double.Parse(Conexion.obtenerValor("Costo").ToString());
                dvd.Precio = Double.Parse(Conexion.obtenerValor("i.Precio").ToString());
                dvd.Artista = Conexion.obtenerValor("Artista").ToString();
                dvd.Duracion = int.Parse(Conexion.obtenerValor("Duracion").ToString());
                ContenidoRelacionado cr = new ContenidoRelacionado();
                cr.OID = Conexion.obtenerValor("i.itemOID").ToString();
                cr.Precio = Double.Parse(Conexion.obtenerValor("cr.Precio").ToString());
                dvd.Agregados.Add(cr);
                AccesoOnline ao = new AccesoOnline();
                ao.OID = Conexion.obtenerValor("i.itemOID").ToString();
                ao.Precio = Double.Parse(Conexion.obtenerValor("ao.Precio").ToString());
                dvd.Agregados.Add(ao);
                TiempoEntrega t = new TiempoEntrega();
                dvd.Agregados.Add(t);
                al.Add(dvd);
            }

            Conexion.finConsulta();

            return al;
        }

    }
}
